package com.iatinspur.learn;

import com.iatinspur.My;
import com.iatinspur.pojo.MyIml;

/**
 * 16集  讲解 【打破】双亲委派机制
 *       线程上下文类加载器
 *
 *       todo 这一集他用arthas热部署 解决不停机
 *            1.  java -Dfile.encoding=utf-8 -jar arthas-boot.jar                       【进入arthas】
 *            2.  jad --source-only com.iatinspur.pojo.MyIml > D:\\myClass\\MyIml.java  【class文件反编译成java文件】
 *            3.  sc -d com.iatinspur.pojo.MyIml                                        【查找这个类的类加载器】
 *            4.  mc -c 18b4aac2  D:\\myClass\\MyIml.java -d  D:\\myClass               【编译这个java文件 变成class文件】
 *            5.  retransform D:\\myClass\\com\\iatinspur\\pojo\\MyIml.class            【加载进来】
 *
 *
 *
 *  todo 为啥要打破
 *       一个AppClassLoader 要加载了两个名称相同的类 加载了一个可能另外一个就不能加载了，自定义两个个类加载器，当加载这个类时 我们就不要让AppClassLoader去加载
 *
 *  todo 打破双亲委派机制的三个方法
 *       1.自定义类加载器
 *       2.线程上下文类加载器
 *       3.Osgi框架的类加载器  【演示】
 *
 *
 *  线程上下文类加载器 使用的是jdbc jndi等
 */
public class Learn_13_JVM {

    public static void main(String[] args) throws InterruptedException {
        My myIml = new MyIml();
        while(true){

            myIml.say();
            Thread.sleep(10000);
        }
    }



}








